# This should match the schema defined in external_deps.bzl.

PROTOBUF_VERSION = "23.1"

# These names of these deps *must* match the names used in `/bazel/protobuf.patch`,
# and both must match the names from the protobuf releases (see
# https://github.com/protocolbuffers/protobuf/releases).
# The names change in upcoming versions.
# The shas are calculated from the downloads on the releases page.
PROTOC_VERSIONS = dict(
    linux_aarch_64 = "f174eb3a6bd812e9946be3a9ef3fb8f8ac4a6f8acd0a01c928fb2fecb22b6fb0",
    linux_x86_64 = "031f8e7504eb359df58389b31752f8081c01b01132a2f3f768a3792ac4b06f3f",
    osx_aarch_64 = "8d0af9adbbde1a9791d10125f4742a4c9fa84f85ee46fe69adde6bf5e8a4a428",
    osx_x86_64 = "5d0367dfd58ea894f87d1d6efbd800bf52820842e9151d265db17471bc69fe94",
    win64 = "420cd7a1548a9c3ef5b5a7e969b6fcf8ee6a5a09cec99d7a3209406f028e5dce",
)

REPOSITORY_LOCATIONS_SPEC = dict(
    bazel_compdb = dict(
        project_name = "bazel-compilation-database",
        project_desc = "Clang JSON compilation database support for Bazel",
        project_url = "https://github.com/grailbio/bazel-compilation-database",
        version = "40864791135333e1446a04553b63cbe744d358d0",
        sha256 = "acd2a9eaf49272bb1480c67d99b82662f005b596a8c11739046a4220ec73c4da",
        strip_prefix = "bazel-compilation-database-{version}",
        urls = ["https://github.com/grailbio/bazel-compilation-database/archive/{version}.tar.gz"],
        release_date = "2022-09-06",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/grailbio/bazel-compilation-database/blob/{version}/LICENSE",
    ),
    bazel_gazelle = dict(
        project_name = "Gazelle",
        project_desc = "Bazel BUILD file generator for Go projects",
        project_url = "https://github.com/bazelbuild/bazel-gazelle",
        version = "0.31.1",
        sha256 = "b8b6d75de6e4bf7c41b7737b183523085f56283f6db929b86c5e7e1f09cf59c9",
        urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/v{version}/bazel-gazelle-v{version}.tar.gz"],
        release_date = "2023-06-13",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/bazel-gazelle/blob/v{version}/LICENSE",
    ),
    bazel_toolchains = dict(
        project_name = "bazel-toolchains",
        project_desc = "Bazel toolchain configs for RBE",
        project_url = "https://github.com/bazelbuild/bazel-toolchains",
        version = "5.1.2",
        sha256 = "02e4f3744f1ce3f6e711e261fd322916ddd18cccd38026352f7a4c0351dbda19",
        strip_prefix = "bazel-toolchains-{version}",
        urls = [
            "https://github.com/bazelbuild/bazel-toolchains/archive/v{version}.tar.gz",
        ],
        release_date = "2022-08-09",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/bazel-toolchains/blob/v{version}/LICENSE",
    ),
    build_bazel_rules_apple = dict(
        project_name = "Apple Rules for Bazel",
        project_desc = "Bazel rules for Apple platforms",
        project_url = "https://github.com/bazelbuild/rules_apple",
        version = "2.4.1",
        sha256 = "2a0a35c9f72a0b0ac9238ecb081b0da4bb3e9739e25d2a910cc6b4c4425c01be",
        urls = ["https://github.com/bazelbuild/rules_apple/releases/download/{version}/rules_apple.{version}.tar.gz"],
        release_date = "2023-07-07",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_apple/blob/{version}/LICENSE",
    ),
    com_github_bazelbuild_buildtools = dict(
        project_name = "Bazel build tools",
        project_desc = "Developer tools for working with Google's bazel buildtool.",
        project_url = "https://github.com/bazelbuild/buildtools",
        version = "6.3.3",
        sha256 = "42968f9134ba2c75c03bb271bd7bb062afb7da449f9b913c96e5be4ce890030a",
        release_date = "2023-08-25",
        strip_prefix = "buildtools-{version}",
        urls = ["https://github.com/bazelbuild/buildtools/archive/v{version}.tar.gz"],
        use_category = ["test_only"],
    ),
    rules_fuzzing = dict(
        project_name = "Fuzzing Rules for Bazel",
        project_desc = "Bazel rules for fuzz tests",
        project_url = "https://github.com/bazelbuild/rules_fuzzing",
        # Patch contains workaround for https://github.com/bazelbuild/rules_python/issues/1221
        version = "0.3.2",
        sha256 = "f85dc70bb9672af0e350686461fe6fdd0d61e10e75645f9e44fedf549b21e369",
        strip_prefix = "rules_fuzzing-{version}",
        urls = ["https://github.com/bazelbuild/rules_fuzzing/archive/v{version}.tar.gz"],
        release_date = "2022-08-31",
        use_category = ["test_only"],
        implied_untracked_deps = [
            # This is a repository rule generated to define an OSS-Fuzz fuzzing
            # engine target from the CFLAGS/CXXFLAGS environment.
            "rules_fuzzing_oss_fuzz",
        ],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_fuzzing/blob/v{version}/LICENSE",
    ),
    envoy_build_tools = dict(
        project_name = "envoy-build-tools",
        project_desc = "Common build tools shared by the Envoy/UDPA ecosystem",
        project_url = "https://github.com/envoyproxy/envoy-build-tools",
        version = "f727ec142156c8076384a35c0e2d51da3c1d7813",
        sha256 = "72510592f34f3fd6269c5fdd2286465a05ce6ca438ac1faebfdb88ed309fe9da",
        strip_prefix = "envoy-build-tools-{version}",
        urls = ["https://github.com/envoyproxy/envoy-build-tools/archive/{version}.tar.gz"],
        release_date = "2023-10-16",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/envoyproxy/envoy-build-tools/blob/{version}/LICENSE",
    ),
    boringssl = dict(
        project_name = "BoringSSL",
        project_desc = "Minimal OpenSSL fork",
        project_url = "https://github.com/google/boringssl",
        # To update BoringSSL, which tracks Chromium releases:
        # 1. Open https://omahaproxy.appspot.com/ and note <current_version> of linux/beta release.
        # 2. Open https://chromium.googlesource.com/chromium/src/+/refs/tags/<current_version>/DEPS and note <boringssl_revision>.
        # 3. Find a commit in BoringSSL's "master-with-bazel" branch that merges <boringssl_revision>.
        #
        # chromium-112.0.5615.39 (linux/beta)
        version = "88d7a40bd06a34da6ee0d985545755199d047258",
        sha256 = "1e759891e168c5957f2f4d519929e2b4cef9303b7cf2049601081f4fca95bf21",
        strip_prefix = "boringssl-{version}",
        urls = ["https://github.com/google/boringssl/archive/{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2023-02-14",
        cpe = "cpe:2.3:a:google:boringssl:*",
        license = "Mixed",
        license_url = "https://github.com/google/boringssl/blob/{version}/LICENSE",
    ),
    boringssl_fips = dict(
        project_name = "BoringSSL (FIPS)",
        project_desc = "FIPS compliant BoringSSL",
        project_url = "https://boringssl.googlesource.com/boringssl/+/master/crypto/fipsmodule/FIPS.md",
        # When this is updated to a revision newer than 2022-08-12,
        # CertValidatorUtil::setIgnoreCertificateExpiration can be simplified.
        version = "fips-20210429",
        sha256 = "a4d069ccef6f3c7bc0c68de82b91414f05cb817494cd1ab483dcf3368883c7c2",
        urls = ["https://commondatastorage.googleapis.com/chromium-boringssl-fips/boringssl-853ca1ea1168dff08011e5d42d94609cc0ca2e27.tar.xz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2021-04-29",
        cpe = "cpe:2.3:a:google:boringssl:*",
    ),
    aspect_bazel_lib = dict(
        project_name = "Aspect Bazel helpers",
        project_desc = "Base Starlark libraries and basic Bazel rules which are useful for constructing rulesets and BUILD files",
        project_url = "https://github.com/aspect-build/bazel-lib",
        version = "1.33.0",
        sha256 = "d488d8ecca98a4042442a4ae5f1ab0b614f896c0ebf6e3eafff363bcc51c6e62",
        strip_prefix = "bazel-lib-{version}",
        urls = ["https://github.com/aspect-build/bazel-lib/archive/v{version}.tar.gz"],
        use_category = ["build"],
        release_date = "2023-07-21",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/aspect-build/bazel-lib/blob/v{version}/LICENSE",
    ),
    com_google_absl = dict(
        project_name = "Abseil",
        project_desc = "Open source collection of C++ libraries drawn from the most fundamental pieces of Google’s internal codebase",
        project_url = "https://abseil.io/",
        version = "c8b33b0191a2db8364cacf94b267ea8a3f20ad83",
        sha256 = "a7803eac00bf68eae1a84ee3b9fcf0c1173e8d9b89b2cee92c7b487ea65be2a9",
        strip_prefix = "abseil-cpp-{version}",
        urls = ["https://github.com/abseil/abseil-cpp/archive/{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2023-05-16",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/abseil/abseil-cpp/blob/{version}/LICENSE",
    ),
    com_github_aignas_rules_shellcheck = dict(
        project_name = "Shellcheck rules for bazel",
        project_desc = "Now you do not need to depend on the system shellcheck version in your bazel-managed (mono)repos.",
        project_url = "https://github.com/aignas/rules_shellcheck",
        version = "0.1.1",
        sha256 = "4e7cc56d344d0adfd20283f7ad8cb4fba822c0b15ce122665b00dd87a27a74b6",
        strip_prefix = "rules_shellcheck-{version}",
        urls = ["https://github.com/aignas/rules_shellcheck/archive/v{version}.tar.gz"],
        release_date = "2022-05-30",
        use_category = ["build"],
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/aignas/rules_shellcheck/blob/v{version}/LICENSE",
    ),
    com_github_axboe_liburing = dict(
        project_name = "liburing",
        project_desc = "C helpers to set up and tear down io_uring instances",
        project_url = "https://github.com/axboe/liburing",
        version = "2.3",
        sha256 = "60b367dbdc6f2b0418a6e0cd203ee0049d9d629a36706fcf91dfb9428bae23c8",
        strip_prefix = "liburing-liburing-{version}",
        urls = ["https://github.com/axboe/liburing/archive/liburing-{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2022-10-26",
        cpe = "N/A",
    ),
    # This dependency is built only when performance tracing is enabled with the
    # option --define=perf_tracing=enabled. It's never built for releases.
    com_github_google_perfetto = dict(
        project_name = "Perfetto",
        project_desc = "Perfetto Tracing SDK",
        project_url = "https://perfetto.dev/",
        version = "36.1",
        sha256 = "b46145b6009dd7367ab12ef1e36a1656ec004674d3df167184a0ba6ceb384283",
        strip_prefix = "perfetto-{version}/sdk",
        urls = ["https://github.com/google/perfetto/archive/v{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2023-07-06",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/google/perfetto/blob/v{version}/LICENSE",
    ),
    com_github_c_ares_c_ares = dict(
        project_name = "c-ares",
        project_desc = "C library for asynchronous DNS requests",
        project_url = "https://c-ares.haxx.se/",
        version = "1.19.1",
        sha256 = "321700399b72ed0e037d0074c629e7741f6b2ec2dda92956abe3e9671d3e268e",
        strip_prefix = "c-ares-{version}",
        urls = ["https://github.com/c-ares/c-ares/releases/download/cares-{underscore_version}/c-ares-{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2023-05-22",
        cpe = "cpe:2.3:a:c-ares_project:c-ares:*",
        license = "c-ares",
        license_url = "https://github.com/c-ares/c-ares/blob/cares-{underscore_version}/LICENSE.md",
    ),
    com_github_openhistogram_libcircllhist = dict(
        project_name = "libcircllhist",
        project_desc = "An implementation of OpenHistogram log-linear histograms",
        project_url = "https://github.com/openhistogram/libcircllhist",
        version = "39f9db724a81ba78f5d037f1cae79c5a07107c8e",
        sha256 = "fd2492f6cc1f8734f8f57be8c2e7f2907e94ee2a4c02445ce59c4241fece144b",
        strip_prefix = "libcircllhist-{version}",
        urls = ["https://github.com/openhistogram/libcircllhist/archive/{version}.tar.gz"],
        use_category = ["controlplane", "observability_core", "dataplane_core"],
        release_date = "2019-05-21",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/openhistogram/libcircllhist/blob/{version}/LICENSE",
    ),
    com_github_cyan4973_xxhash = dict(
        project_name = "xxHash",
        project_desc = "Extremely fast hash algorithm",
        project_url = "https://github.com/Cyan4973/xxHash",
        version = "0.8.1",
        sha256 = "3bb6b7d6f30c591dd65aaaff1c8b7a5b94d81687998ca9400082c739a690436c",
        strip_prefix = "xxHash-{version}",
        urls = ["https://github.com/Cyan4973/xxHash/archive/v{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2021-11-29",
        cpe = "N/A",
        license = "BSD-2-Clause",
        license_url = "https://github.com/Cyan4973/xxHash/blob/v{version}/LICENSE",
    ),
    com_github_envoyproxy_sqlparser = dict(
        project_name = "C++ SQL Parser Library",
        project_desc = "Forked from Hyrise SQL Parser",
        project_url = "https://github.com/envoyproxy/sql-parser",
        version = "3b40ba2d106587bdf053a292f7e3bb17e818a57f",
        sha256 = "96c10c8e950a141a32034f19b19cdeb1da48fe859cf96ae5e19f894f36c62c71",
        strip_prefix = "sql-parser-{version}",
        urls = ["https://github.com/envoyproxy/sql-parser/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.filters.network.mysql_proxy",
            "envoy.filters.network.postgres_proxy",
        ],
        release_date = "2020-06-10",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/envoyproxy/sql-parser/blob/{version}/LICENSE",
    ),
    com_github_mirror_tclap = dict(
        project_name = "tclap",
        project_desc = "Small, flexible library that provides a simple interface for defining and accessing command line arguments",
        project_url = "http://tclap.sourceforge.net",
        version = "1.2.5",
        sha256 = "7e87d13734076fa4f626f6144ce9a02717198b3f054341a6886e2107b048b235",
        strip_prefix = "tclap-{version}",
        urls = ["https://github.com/mirror/tclap/archive/v{version}.tar.gz"],
        release_date = "2021-11-01",
        use_category = ["other"],
        cpe = "cpe:2.3:a:tclap_project:tclap:*",
        license = "MIT",
        license_url = "https://github.com/mirror/tclap/blob/v{version}/COPYING",
    ),
    com_github_fmtlib_fmt = dict(
        project_name = "fmt",
        project_desc = "{fmt} is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams",
        project_url = "https://fmt.dev",
        version = "9.1.0",
        sha256 = "cceb4cb9366e18a5742128cb3524ce5f50e88b476f1e54737a47ffdf4df4c996",
        strip_prefix = "fmt-{version}",
        urls = ["https://github.com/fmtlib/fmt/releases/download/{version}/fmt-{version}.zip"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2022-08-27",
        cpe = "cpe:2.3:a:fmt:fmt:*",
        license = "fmt",
        license_url = "https://github.com/fmtlib/fmt/blob/{version}/LICENSE.rst",
    ),
    com_github_gabime_spdlog = dict(
        project_name = "spdlog",
        project_desc = "Very fast, header-only/compiled, C++ logging library",
        project_url = "https://github.com/gabime/spdlog",
        version = "1.12.0",
        sha256 = "4dccf2d10f410c1e2feaff89966bfc49a1abb29ef6f08246335b110e001e09a9",
        strip_prefix = "spdlog-{version}",
        urls = ["https://github.com/gabime/spdlog/archive/v{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2023-07-08",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/gabime/spdlog/blob/v{version}/LICENSE",
    ),
    com_github_google_libprotobuf_mutator = dict(
        project_name = "libprotobuf-mutator",
        project_desc = "Library to randomly mutate protobuffers",
        project_url = "https://github.com/google/libprotobuf-mutator",
        version = "3b28530531b154a748fe9884bc9219b4966f0754",
        sha256 = "21bfdfef25554fa2e30aec2a9f9b58f4a17c1d8c8593763fa94a6dd74b226594",
        strip_prefix = "libprotobuf-mutator-{version}",
        urls = ["https://github.com/google/libprotobuf-mutator/archive/{version}.tar.gz"],
        release_date = "2023-04-25",
        use_category = ["test_only"],
        license = "Apache-2.0",
        license_url = "https://github.com/google/libprotobuf-mutator/blob/v{version}/LICENSE",
    ),
    com_github_google_libsxg = dict(
        project_name = "libsxg",
        project_desc = "Signed HTTP Exchange library",
        project_url = "https://github.com/google/libsxg",
        version = "beaa3939b76f8644f6833267e9f2462760838f18",
        sha256 = "082bf844047a9aeec0d388283d5edc68bd22bcf4d32eb5a566654ae89956ad1f",
        strip_prefix = "libsxg-{version}",
        urls = ["https://github.com/google/libsxg/archive/{version}.tar.gz"],
        use_category = ["other"],
        extensions = ["envoy.filters.http.sxg"],
        release_date = "2021-07-08",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/google/libsxg/blob/{version}/LICENSE",
    ),
    com_github_google_tcmalloc = dict(
        project_name = "tcmalloc",
        project_desc = "Fast, multi-threaded malloc implementation",
        project_url = "https://github.com/google/tcmalloc",
        version = "e33c7bc60415127c104006d3301c96902f98d42a",
        sha256 = "14a2c91b71d6719558768a79671408c9acd8284b418e80386c5888047e2c15aa",
        strip_prefix = "tcmalloc-{version}",
        urls = ["https://github.com/google/tcmalloc/archive/{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2022-10-24",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/google/tcmalloc/blob/{version}/LICENSE",
    ),
    com_github_ggerganov_llama = dict(
        project_name = "llama.cpp",
        project_desc = "LLM inference in C/C++",
        project_url = "https://github.com/ggerganov/llama.cpp",
        version = "947538acb8617756a092042ff7e58db18dde05ec",
        sha256 = "566ec06009584be8303d5d4b0070ccb0b531695fef3008019e1db97bb7c427c4",
        strip_prefix = "llama.cpp-{version}",
        urls = ["https://github.com/ggerganov/llama.cpp/archive/{version}.zip"],
        use_category = ["dataplane_core"],
        release_date = "2024-09-06",
        cpe = "N/A",
    ),
    com_github_gperftools_gperftools = dict(
        project_name = "gperftools",
        project_desc = "tcmalloc and profiling libraries",
        project_url = "https://github.com/gperftools/gperftools",
        version = "2.10",
        sha256 = "83e3bfdd28b8bcf53222c3798d4d395d52dadbbae59e8730c4a6d31a9c3732d8",
        strip_prefix = "gperftools-{version}",
        urls = ["https://github.com/gperftools/gperftools/releases/download/gperftools-{version}/gperftools-{version}.tar.gz"],
        release_date = "2022-05-31",
        use_category = ["dataplane_core", "controlplane"],
        cpe = "cpe:2.3:a:gperftools_project:gperftools:*",
        license = "BSD-3-Clause",
        license_url = "https://github.com/gperftools/gperftools/blob/gperftools-{version}/COPYING",
    ),
    com_github_grpc_grpc = dict(
        project_name = "gRPC",
        project_desc = "gRPC C core library",
        project_url = "https://grpc.io",
        version = "1.59.4",
        sha256 = "6edc67c2ad200c5b618c421f6e8c1b734a4aa3e741975e683491da03390ebf63",
        strip_prefix = "grpc-{version}",
        urls = ["https://github.com/grpc/grpc/archive/v{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2024-02-05",
        cpe = "cpe:2.3:a:grpc:grpc:*",
        license = "Apache-2.0",
        license_url = "https://github.com/grpc/grpc/blob/v{version}/LICENSE",
    ),
    com_github_unicode_org_icu = dict(
        project_name = "ICU Library",
        project_desc = "Development files for International Components for Unicode",
        project_url = "https://github.com/unicode-org/icu",
        # When this is updated, make sure to update the icu.patch patch file and remove
        # all remaining Bazel build artifacts (for example WORKSPACE and BUILD.bazel files)
        # from the icu source code, to prevent Bazel from treating the foreign library
        # as a Bazel project.
        # https://github.com/envoyproxy/envoy/issues/26395
        version = "72-1",
        sha256 = "43cbad628d98f37a3f95f6c34579f9144ef4bde60248fa6004a4f006d7487e69",
        strip_prefix = "icu-release-{version}",
        urls = ["https://github.com/unicode-org/icu/archive/release-{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.language"],
        release_date = "2022-10-18",
        cpe = "N/A",
        license = "ICU",
        license_url = "https://github.com/unicode-org/icu/blob/release-{version}/icu4c/LICENSE",
    ),
    com_github_intel_ipp_crypto_crypto_mb = dict(
        project_name = "libipp-crypto",
        project_desc = "Intel® Integrated Performance Primitives Cryptography",
        project_url = "https://github.com/intel/cryptography-primitives",
        version = "2021.6",
        sha256 = "a52bf15208d493adb846994f2ce928bd02c74fd8ff3a2def2fca7b072d67e6bf",
        strip_prefix = "cryptography-primitives-ippcp_{version}",
        urls = ["https://github.com/intel/cryptography-primitives/archive/ippcp_{version}.tar.gz"],
        release_date = "2022-08-09",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.tls.key_providers.cryptomb"],
        cpe = "cpe:2.3:a:intel:cryptography_for_intel_integrated_performance_primitives:*",
        license = "Apache-2.0",
        license_url = "https://github.com/intel/cryptography-primitives/blob/ippcp_{version}/LICENSE",
    ),
    com_github_intel_qatlib = dict(
        project_name = "qatlib",
        project_desc = "Intel QuickAssist Technology Library",
        project_url = "https://github.com/intel/qatlib",
        version = "23.02.0",
        sha256 = "075d900e44be30c117585054f0fd5eea853d3804106a401e537b1fff45297542",
        strip_prefix = "qatlib-{version}",
        urls = ["https://github.com/intel/qatlib/archive/refs/tags/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        release_date = "2023-02-24",
        extensions = ["envoy.tls.key_providers.qat"],
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/intel/qatlib/blob/{version}/LICENSE",
    ),
    com_github_luajit_luajit = dict(
        project_name = "LuaJIT",
        project_desc = "Just-In-Time compiler for Lua",
        project_url = "https://luajit.org",
        # LuaJIT only provides rolling releases
        version = "1c279127050e86e99970100e9c42e0f09cd54ab7",
        sha256 = "c62f6e6d5bff89e4718709841cd6be71ad419ac9fa780c91abf1635cda923f8f",
        strip_prefix = "LuaJIT-{version}",
        urls = ["https://github.com/LuaJIT/LuaJIT/archive/{version}.tar.gz"],
        release_date = "2023-04-16",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.lua"],
        cpe = "cpe:2.3:a:luajit:luajit:*",
        license = "MIT",
        license_url = "https://github.com/LuaJIT/LuaJIT/blob/{version}/COPYRIGHT",
    ),
    com_github_nghttp2_nghttp2 = dict(
        project_name = "Nghttp2",
        project_desc = "Implementation of HTTP/2 and its header compression algorithm HPACK in C",
        project_url = "https://nghttp2.org",
        version = "1.59.0",
        sha256 = "90fd27685120404544e96a60ed40398a3457102840c38e7215dc6dec8684470f",
        strip_prefix = "nghttp2-{version}",
        urls = ["https://github.com/nghttp2/nghttp2/releases/download/v{version}/nghttp2-{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2024-01-21",
        cpe = "cpe:2.3:a:nghttp2:nghttp2:*",
        license = "MIT",
        license_url = "https://github.com/nghttp2/nghttp2/blob/v{version}/LICENSE",
    ),
    io_hyperscan = dict(
        project_name = "Hyperscan",
        project_desc = "High-performance regular expression matching library",
        project_url = "https://hyperscan.io",
        version = "5.4.2",
        sha256 = "32b0f24b3113bbc46b6bfaa05cf7cf45840b6b59333d078cc1f624e4c40b2b99",
        strip_prefix = "hyperscan-{version}",
        urls = ["https://github.com/intel/hyperscan/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.matching.input_matchers.hyperscan",
            "envoy.regex_engines.hyperscan",
        ],
        release_date = "2023-04-19",
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/intel/hyperscan/blob/{version}/LICENSE",
    ),
    io_opentracing_cpp = dict(
        project_name = "OpenTracing",
        project_desc = "Vendor-neutral APIs and instrumentation for distributed tracing",
        project_url = "https://opentracing.io",
        version = "1.5.1",
        sha256 = "015c4187f7a6426a2b5196f0ccd982aa87f010cf61f507ae3ce5c90523f92301",
        strip_prefix = "opentracing-cpp-{version}",
        urls = ["https://github.com/opentracing/opentracing-cpp/archive/v{version}.tar.gz"],
        use_category = ["observability_ext"],
        extensions = [
            "envoy.tracers.datadog",
            "envoy.tracers.dynamic_ot",
        ],
        release_date = "2019-01-16",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/opentracing/opentracing-cpp/blob/v{version}/LICENSE",
    ),
    skywalking_data_collect_protocol = dict(
        project_name = "skywalking-data-collect-protocol",
        project_desc = "Data Collect Protocols of Apache SkyWalking",
        project_url = "https://github.com/apache/skywalking-data-collect-protocol",
        sha256 = "49bd689b9c1c0ea12064bd35581689cef7835e5ac15d335dc425fbfc2029aa90",
        urls = ["https://github.com/apache/skywalking-data-collect-protocol/archive/v{version}.tar.gz"],
        strip_prefix = "skywalking-data-collect-protocol-{version}",
        version = "8.9.1",
        use_category = ["observability_ext"],
        extensions = ["envoy.tracers.skywalking"],
        release_date = "2021-12-11",
        cpe = "cpe:2.3:a:apache:skywalking:*",
        license = "Apache-2.0",
    ),
    com_github_skyapm_cpp2sky = dict(
        project_name = "cpp2sky",
        project_desc = "C++ SDK for Apache SkyWalking",
        project_url = "https://github.com/SkyAPM/cpp2sky",
        sha256 = "eda4c32296aefde09cb7d059fc3d06698bf96d7827db51c582e1cd40e266c260",
        version = "0.4.0",
        strip_prefix = "cpp2sky-{version}",
        urls = ["https://github.com/SkyAPM/cpp2sky/archive/v{version}.tar.gz"],
        use_category = ["observability_ext"],
        extensions = ["envoy.tracers.skywalking"],
        release_date = "2022-03-28",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/SkyAPM/cpp2sky/blob/v{version}/LICENSE",
    ),
    com_github_datadog_dd_trace_cpp = dict(
        project_name = "Datadog C++ Tracing Library",
        project_desc = "Datadog distributed tracing for C++",
        project_url = "https://github.com/DataDog/dd-trace-cpp",
        version = "0.1.8",
        sha256 = "77162c26ba976b8b18e6daf50beaec39389286840733b08e1627d4e5572d4b51",
        strip_prefix = "dd-trace-cpp-{version}",
        urls = ["https://github.com/DataDog/dd-trace-cpp/archive/v{version}.tar.gz"],
        use_category = ["observability_ext"],
        extensions = ["envoy.tracers.datadog"],
        release_date = "2023-03-31",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/DataDog/dd-trace-cpp/blob/v{version}/LICENSE.md",
    ),
    com_github_google_benchmark = dict(
        project_name = "Benchmark",
        project_desc = "Library to benchmark code snippets",
        project_url = "https://github.com/google/benchmark",
        version = "1.7.0",
        sha256 = "3aff99169fa8bdee356eaa1f691e835a6e57b1efeadb8a0f9f228531158246ac",
        strip_prefix = "benchmark-{version}",
        urls = ["https://github.com/google/benchmark/archive/v{version}.tar.gz"],
        use_category = ["test_only"],
        release_date = "2022-07-25",
        license = "Apache-2.0",
        license_url = "https://github.com/google/benchmark/blob/v{version}/LICENSE",
    ),
    com_github_libevent_libevent = dict(
        project_name = "libevent",
        project_desc = "Event notification library",
        project_url = "https://libevent.org",
        # This SHA includes the new "prepare" and "check" watchers, used for event loop performance
        # stats (see https://github.com/libevent/libevent/pull/793) and the fix for a race condition
        # in the watchers (see https://github.com/libevent/libevent/pull/802).
        # This also includes the fixes for https://github.com/libevent/libevent/issues/806
        # and https://github.com/envoyproxy/envoy-mobile/issues/215.
        # This also includes the fixes for Phantom events with EV_ET (see
        # https://github.com/libevent/libevent/issues/984).
        # This also includes the wepoll backend for Windows (see
        # https://github.com/libevent/libevent/pull/1006)
        # TODO(adip): Update to v2.2 when it is released.
        version = "62c152d9a7cd264b993dad730c4163c6ede2e0a3",
        sha256 = "4c80e5fe044ce5f8055b20a2f141ee32ec2614000f3e95d2aa81611a4c8f5213",
        strip_prefix = "libevent-{version}",
        urls = ["https://github.com/libevent/libevent/archive/{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2020-07-28",
        cpe = "cpe:2.3:a:libevent_project:libevent:*",
        license = "BSD-3-Clause",
        license_url = "https://github.com/libevent/libevent/blob/{version}/LICENSE",
    ),
    net_colm_open_source_colm = dict(
        project_name = "Colm",
        project_desc = "The Colm Programming Language",
        project_url = "https://www.colm.net/open-source/colm/",
        # The latest release version v0.14.7 prevents building statically (see
        # https://github.com/adrian-thurston/colm/issues/146). The latest SHA includes the fix (see
        # https://github.com/adrian-thurston/colm/commit/fc61ecb3a22b89864916ec538eaf04840e7dd6b5).
        # TODO(zhxie): Update to the next release version when it is released.
        version = "2d8ba76ddaf6634f285d0a81ee42d5ee77d084cf",
        sha256 = "0399e9bef7603a8f3d94acd0b0af6b5944cc3103e586734719379d3ec09620c0",
        strip_prefix = "colm-{version}",
        urls = ["https://github.com/adrian-thurston/colm/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.matching.input_matchers.hyperscan",
            "envoy.regex_engines.hyperscan",
        ],
        release_date = "2021-12-28",
        cpe = "N/A",
    ),
    net_colm_open_source_ragel = dict(
        project_name = "Ragel",
        project_desc = "Ragel State Machine Compiler",
        project_url = "https://www.colm.net/open-source/ragel/",
        # We used the stable release Ragel 6.10 previously and it is under GPLv2 license (see
        # http://www.colm.net/open-source/ragel). Envoy uses its binary only as a tool for
        # compiling contrib extension Hyperscan. For copyright consideration, we update Ragel to
        # its development release which is under MIT license.
        # The latest release version v7.0.4 is not compatible with its dependency Colm we use. The
        # latest SHA includes fix for compatibility.
        # TODO(zhxie): Update to the next release version when it is released.
        version = "d4577c924451b331c73c8ed0af04f6efd35ac0b4",
        sha256 = "fa3474d50da9c870b79b51ad43f8d11cdf05268f5ec05a602ecd5b1b5f5febb0",
        strip_prefix = "ragel-{version}",
        urls = ["https://github.com/adrian-thurston/ragel/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.matching.input_matchers.hyperscan",
            "envoy.regex_engines.hyperscan",
        ],
        release_date = "2021-12-28",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/adrian-thurston/ragel/blob/{version}/COPYING",
    ),
    # This should be removed, see https://github.com/envoyproxy/envoy/issues/13261.
    net_zlib = dict(
        project_name = "zlib",
        project_desc = "zlib compression library",
        project_url = "https://zlib.net",
        version = "1.2.13",
        sha256 = "1525952a0a567581792613a9723333d7f8cc20b87a81f920fb8bc7e3f2251428",
        strip_prefix = "zlib-{version}",
        urls = ["https://github.com/madler/zlib/archive/v{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2022-10-14",
        cpe = "cpe:2.3:a:gnu:zlib:*",
        license = "zlib",
        license_url = "https://github.com/madler/zlib/blob/v{version}/zlib.h",
    ),
    org_boost = dict(
        project_name = "Boost",
        project_desc = "Boost C++ source libraries",
        project_url = "https://www.boost.org/",
        version = "1.84.0",
        sha256 = "a5800f405508f5df8114558ca9855d2640a2de8f0445f051fa1c7c3383045724",
        strip_prefix = "boost_{underscore_version}",
        urls = ["https://archives.boost.io/release/{version}/source/boost_{underscore_version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.matching.input_matchers.hyperscan",
            "envoy.regex_engines.hyperscan",
        ],
        release_date = "2023-12-13",
        cpe = "cpe:2.3:a:boost:boost:*",
        license = "Boost",
        license_url = "https://github.com/boostorg/boost/blob/boost-{version}/LICENSE_1_0.txt",
    ),
    org_brotli = dict(
        project_name = "brotli",
        project_desc = "brotli compression library",
        project_url = "https://brotli.org",
        # Use the dev branch of brotli to resolve compilation issues.
        # TODO(rojkov): Remove when brotli > 1.0.9 is released.
        version = "6d03dfbedda1615c4cba1211f8d81735575209c8",
        sha256 = "0e8eea905081ce894d1616970a83b21265a13505ce06e8aa6a747fd686938d10",
        strip_prefix = "brotli-{version}",
        urls = ["https://github.com/google/brotli/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.compression.brotli.compressor",
            "envoy.compression.brotli.decompressor",
        ],
        release_date = "2022-10-25",
        cpe = "cpe:2.3:a:google:brotli:*",
        license = "MIT",
        license_url = "https://github.com/google/brotli/blob/{version}/LICENSE",
    ),
    com_github_facebook_zstd = dict(
        project_name = "zstd",
        project_desc = "zstd compression library",
        project_url = "https://facebook.github.io/zstd",
        version = "1.5.5",
        sha256 = "98e9c3d949d1b924e28e01eccb7deed865eefebf25c2f21c702e5cd5b63b85e1",
        strip_prefix = "zstd-{version}",
        urls = ["https://github.com/facebook/zstd/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.compression.zstd.compressor",
            "envoy.compression.zstd.decompressor",
        ],
        release_date = "2023-04-04",
        cpe = "cpe:2.3:a:facebook:zstandard:*",
    ),
    com_github_zlib_ng_zlib_ng = dict(
        project_name = "zlib-ng",
        project_desc = "zlib fork (higher performance)",
        project_url = "https://github.com/zlib-ng/zlib-ng",
        version = "2.0.7",
        sha256 = "6c0853bb27738b811f2b4d4af095323c3d5ce36ceed6b50e5f773204fb8f7200",
        strip_prefix = "zlib-ng-{version}",
        urls = ["https://github.com/zlib-ng/zlib-ng/archive/{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2023-03-17",
        cpe = "N/A",
        license = "zlib",
        license_url = "https://github.com/zlib-ng/zlib-ng/blob/{version}/LICENSE.md",
    ),
    com_github_jbeder_yaml_cpp = dict(
        project_name = "yaml-cpp",
        project_desc = "YAML parser and emitter in C++ matching the YAML 1.2 spec",
        project_url = "https://github.com/jbeder/yaml-cpp",
        version = "420c98231094b1cd2e5de3a714c4e3ee9b4f1118",
        sha256 = "92160e266dcc4a276b0de037ad211c84133b2dc4cf1e76eaef57441cf28d698c",
        strip_prefix = "yaml-cpp-{version}",
        urls = ["https://github.com/jbeder/yaml-cpp/archive/{version}.tar.gz"],
        # YAML is also used for runtime as well as controlplane. It shouldn't appear on the
        # dataplane but we can't verify this automatically due to code structure today.
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2022-04-27",
        cpe = "cpe:2.3:a:yaml-cpp_project:yaml-cpp:*",
        license = "MIT",
        license_url = "https://github.com/jbeder/yaml-cpp/blob/{version}/LICENSE",
    ),
    com_github_google_jwt_verify = dict(
        project_name = "jwt_verify_lib",
        project_desc = "JWT verification library for C++",
        project_url = "https://github.com/google/jwt_verify_lib",
        version = "c29ba4bdab2cc9a7b4d80d1d3ebff3bf5b9bf6e2",
        sha256 = "5851ab1857edf46b31dc298fba984e1b7638f80a58f88a84a83402540643a99f",
        strip_prefix = "jwt_verify_lib-{version}",
        urls = ["https://github.com/google/jwt_verify_lib/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.jwt_authn", "envoy.filters.http.gcp_authn"],
        release_date = "2022-11-04",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/google/jwt_verify_lib/blob/{version}/LICENSE",
    ),
    com_github_alibaba_hessian2_codec = dict(
        project_name = "hessian2-codec",
        project_desc = "hessian2-codec is a C++ library for hessian2 codec",
        project_url = "https://github.com/alibaba/hessian2-codec.git",
        version = "dd8e05487a27b367b90ce81f4e6e6f62d693a212",
        sha256 = "93260c54406e11b7be078a7ea120f7ab0df475c733e68d010fde400c5c8c8162",
        strip_prefix = "hessian2-codec-{version}",
        urls = ["https://github.com/alibaba/hessian2-codec/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.network.dubbo_proxy"],
        release_date = "2021-04-05",
        cpe = "N/A",
    ),
    com_github_tencent_rapidjson = dict(
        project_name = "RapidJSON",
        project_desc = "Fast JSON parser/generator for C++",
        project_url = "https://rapidjson.org",
        version = "dfbe1db9da455552f7a9ad5d2aea17dd9d832ac1",
        sha256 = "a2faafbc402394df0fa94602df4b5e4befd734aad6bb55dfef46f62fcaf1090b",
        strip_prefix = "rapidjson-{version}",
        urls = ["https://github.com/Tencent/rapidjson/archive/{version}.tar.gz"],
        use_category = ["observability_ext"],
        # Rapidjson is used in the external dependency of zipkin tracer.
        extensions = ["envoy.tracers.zipkin", "envoy.tracers.opencensus"],
        release_date = "2019-12-03",
        cpe = "cpe:2.3:a:tencent:rapidjson:*",
        license = "RapidJSON",
        license_url = "https://github.com/Tencent/rapidjson/blob/{version}/license.txt",
    ),
    com_github_nlohmann_json = dict(
        project_name = "nlohmann JSON",
        project_desc = "Fast JSON parser/generator for C++",
        project_url = "https://nlohmann.github.io/json",
        version = "3.11.2",
        sha256 = "d69f9deb6a75e2580465c6c4c5111b89c4dc2fa94e3a85fcd2ffcd9a143d9273",
        strip_prefix = "json-{version}",
        urls = ["https://github.com/nlohmann/json/archive/v{version}.tar.gz"],
        # This will be a replacement for rapidJSON used in extensions and may also be a fast
        # replacement for protobuf JSON.
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2022-08-12",
        cpe = "cpe:2.3:a:json-for-modern-cpp_project:json-for-modern-cpp:*",
        license = "MIT",
        license_url = "https://github.com/nlohmann/json/blob/v{version}/LICENSE.MIT",
    ),
    # This is an external dependency needed while running the
    # envoy docker image. A bazel target has been created since
    # there is no binary package available for the utility on Ubuntu
    # which is the base image used to build an envoy container.
    # This is not needed to build an envoy binary or run tests.
    com_github_ncopa_suexec = dict(
        project_name = "su-exec",
        project_desc = "Utility to switch user and group id, setgroups and exec",
        project_url = "https://github.com/ncopa/su-exec",
        version = "212b75144bbc06722fbd7661f651390dc47a43d1",
        sha256 = "939782774079ec156788ea3e04dd5e340e993544f4296be76a9c595334ca1779",
        strip_prefix = "su-exec-{version}",
        urls = ["https://github.com/ncopa/su-exec/archive/{version}.tar.gz"],
        use_category = ["other"],
        release_date = "2019-09-18",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/ncopa/su-exec/blob/{version}/LICENSE",
    ),
    com_google_googletest = dict(
        project_name = "Google Test",
        project_desc = "Google's C++ test framework",
        project_url = "https://github.com/google/googletest",
        # Pick up fix for MOCK_METHOD compilation with clang-cl for Windows (resolved after 1.10.0)
        # see https://github.com/google/googletest/issues/2490
        version = "a4ab0abb93620ce26efad9de9296b73b16e88588",
        sha256 = "7897bfaa5ad39a479177cfb5c3ce010184dbaee22a7c3727b212282871918751",
        strip_prefix = "googletest-{version}",
        urls = ["https://github.com/google/googletest/archive/{version}.tar.gz"],
        release_date = "2020-09-10",
        use_category = ["test_only"],
        cpe = "cpe:2.3:a:google:google_test:*",
        license = "BSD-3-Clause",
        license_url = "https://github.com/google/googletest/blob/{version}/LICENSE",
    ),
    com_google_protobuf = dict(
        project_name = "Protocol Buffers",
        project_desc = "Language-neutral, platform-neutral extensible mechanism for serializing structured data",
        project_url = "https://developers.google.com/protocol-buffers",
        version = PROTOBUF_VERSION,
        # When upgrading the protobuf library, please re-run
        # test/common/json:gen_excluded_unicodes to recompute the ranges
        # excluded from differential fuzzing that are populated in
        # test/common/json/json_sanitizer_test_util.cc.
        sha256 = "72bae766561149f8507a81647f91fc519d2a60309613f004ed307cb5f9b1242b",
        strip_prefix = "protobuf-{version}",
        urls = ["https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protobuf-{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2023-05-17",
        cpe = "cpe:2.3:a:google:protobuf:*",
        license = "Protocol Buffers",
        license_url = "https://github.com/protocolbuffers/protobuf/blob/v{version}/LICENSE",
    ),
    grpc_httpjson_transcoding = dict(
        project_name = "grpc-httpjson-transcoding",
        project_desc = "Library that supports transcoding so that HTTP/JSON can be converted to gRPC",
        project_url = "https://github.com/grpc-ecosystem/grpc-httpjson-transcoding",
        version = "ff41eb3fc9209e6197595b54f7addfa244c0bdb6",
        sha256 = "dea66b3d2dfc150373697e25b1327877e0b7480dc2bacfff1e3fd7aa00b12790",
        strip_prefix = "grpc-httpjson-transcoding-{version}",
        urls = ["https://github.com/grpc-ecosystem/grpc-httpjson-transcoding/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.grpc_json_transcoder", "envoy.filters.http.grpc_field_extraction"],
        release_date = "2023-06-07",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/grpc-ecosystem/grpc-httpjson-transcoding/blob/{version}/LICENSE",
    ),
    com_google_protoconverter = dict(
        project_name = "proto-converter",
        project_desc = "Library that supports the conversion between protobuf binary and json",
        project_url = "https://github.com/grpc-ecosystem/proto-converter",
        version = "d77ff301f48bf2e7a0f8935315e847c1a8e00017",
        sha256 = "6081836fa3838ebb1aa15089a5c3e20f877a0244c7a39b92a2000efb40408dcb",
        strip_prefix = "proto-converter-{version}",
        urls = ["https://github.com/grpc-ecosystem/proto-converter/archive/{version}.zip"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.grpc_json_transcoder", "envoy.filters.http.grpc_field_extraction"],
        release_date = "2023-06-07",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/grpc-ecosystem/proto-converter/blob/{version}/LICENSE",
    ),
    com_google_protofieldextraction = dict(
        project_name = "proto-field-extraction",
        project_desc = "Library that supports the extraction from protobuf binary",
        project_url = "https://github.com/grpc-ecosystem/proto-field-extraction",
        version = "2dfe27548e1f21a665f9068b97b2fc5beb678566",
        sha256 = "ddbbd0dd07012339ac467f5fdac5c294e1efcdc93bb4b7152d468ddbfc9772f0",
        strip_prefix = "proto-field-extraction-{version}",
        urls = ["https://github.com/grpc-ecosystem/proto-field-extraction/archive/{version}.zip"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.grpc_json_transcoder", "envoy.filters.http.grpc_field_extraction"],
        release_date = "2023-07-18",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/grpc-ecosystem/proto-field-extraction/blob/{version}/LICENSE",
    ),
    ocp = dict(
        project_name = "ocp",
        project_desc = "Libraries used in gRPC field extraction library",
        project_url = "https://github.com/opencomputeproject/ocp-diag-core",
        version = "e965ac0ac6db6686169678e2a6c77ede904fa82c",
        sha256 = "b83b8ea7a937ce7f5d6870421be8f9a5343e8c2de2bd2e269452981d67da1509",
        strip_prefix = "ocp-diag-core-{version}/apis/c++",
        urls = ["https://github.com/opencomputeproject/ocp-diag-core/archive/{version}.zip"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.grpc_field_extraction"],
        release_date = "2023-05-05",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/opencomputeproject/ocp-diag-core/blob/{version}/LICENSE",
    ),
    io_bazel_rules_go = dict(
        project_name = "Go rules for Bazel",
        project_desc = "Bazel rules for the Go language",
        project_url = "https://github.com/bazelbuild/rules_go",
        version = "0.39.1",
        sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
        urls = ["https://github.com/bazelbuild/rules_go/releases/download/v{version}/rules_go-v{version}.zip"],
        use_category = ["build", "api"],
        release_date = "2023-04-20",
        implied_untracked_deps = [
            "com_github_golang_protobuf",
            "io_bazel_rules_nogo",
            "org_golang_google_protobuf",
            "org_golang_x_tools",
        ],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_go/blob/v{version}/LICENSE.txt",
    ),
    rules_foreign_cc = dict(
        project_name = "Rules for using foreign build systems in Bazel",
        project_desc = "Rules for using foreign build systems in Bazel",
        project_url = "https://github.com/bazelbuild/rules_foreign_cc",
        version = "0.9.0",
        sha256 = "2a4d07cd64b0719b39a7c12218a3e507672b82a97b98c6a89d38565894cf7c51",
        strip_prefix = "rules_foreign_cc-{version}",
        urls = ["https://github.com/bazelbuild/rules_foreign_cc/archive/{version}.tar.gz"],
        release_date = "2022-08-02",
        use_category = ["build", "dataplane_core", "controlplane"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_foreign_cc/blob/{version}/LICENSE",
    ),
    rules_python = dict(
        project_name = "Python rules for Bazel",
        project_desc = "Bazel rules for the Python language",
        project_url = "https://github.com/bazelbuild/rules_python",
        version = "0.24.0",
        sha256 = "0a8003b044294d7840ac7d9d73eef05d6ceb682d7516781a4ec62eeb34702578",
        release_date = "2023-07-11",
        strip_prefix = "rules_python-{version}",
        urls = ["https://github.com/bazelbuild/rules_python/archive/{version}.tar.gz"],
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_python/blob/{version}/LICENSE",
    ),
    rules_ruby = dict(
        # This is needed only to compile protobuf, not used in Envoy code
        project_name = "Ruby rules for Bazel",
        project_desc = "Bazel rules for the Ruby language",
        project_url = "https://github.com/protocolbuffers/rules_ruby",
        version = "37cf5900d0b0e44fa379c0ea3f5fcee0035d77ca",
        sha256 = "24ed42b7e06907be993b21be603c130076c7d7e49d4f4d5bd228c5656a257f5e",
        release_date = "2023-01-12",
        strip_prefix = "rules_ruby-{version}",
        urls = ["https://github.com/protocolbuffers/rules_ruby/archive/{version}.tar.gz"],
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/protocolbuffers/rules_ruby/blob/{version}/LICENSE",
    ),
    rules_pkg = dict(
        project_name = "Packaging rules for Bazel",
        project_desc = "Bazel rules for the packaging distributions",
        project_url = "https://github.com/bazelbuild/rules_pkg",
        version = "0.7.0",
        sha256 = "e110311d898c1ff35f39829ae3ec56e39c0ef92eb44de74418982a114f51e132",
        strip_prefix = "rules_pkg-{version}",
        urls = ["https://github.com/bazelbuild/rules_pkg/archive/{version}.tar.gz"],
        use_category = ["build"],
        release_date = "2022-04-07",
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_pkg/blob/{version}/LICENSE",
    ),
    org_llvm_llvm = dict(
        # When changing this, you must re-generate the list of llvm libs
        # see `bazel/foreign_cc/BUILD` for further information.
        project_name = "LLVM",
        project_desc = "LLVM Compiler Infrastructure",
        project_url = "https://llvm.org",
        version = "12.0.1",
        sha256 = "7d9a8405f557cefc5a21bf5672af73903b64749d9bc3a50322239f56f34ffddf",
        strip_prefix = "llvm-{version}.src",
        urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/llvm-{version}.src.tar.xz"],
        release_date = "2021-07-09",
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.wasm.runtime.wavm",
        ],
        cpe = "cpe:2.3:a:llvm:*:*",
        license = "Apache-2.0",
        license_url = "https://github.com/llvm/llvm-project/blob/llvmorg-{version}/llvm/LICENSE.TXT",
    ),
    org_llvm_llvm_15_0_7 = dict(
        project_name = "LLVM_15_0_7",
        project_desc = "LLVM Compiler Infrastructure",
        project_url = "https://llvm.org",
        version = "15.0.7",
        sha256 = "8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6",
        strip_prefix = "llvm-project-{version}.src",
        urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/llvm-project-{version}.src.tar.xz"],
        release_date = "2023-01-12",
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.wasm.runtime.wamr",
        ],
        cpe = "cpe:2.3:a:llvm:*:*",
        license = "Apache-2.0",
        license_url = "https://github.com/llvm/llvm-project/blob/llvmorg-{version}/llvm/LICENSE.TXT",
    ),
    com_github_wamr = dict(
        project_name = "Webassembly Micro Runtime",
        project_desc = "A standalone runtime with a small footprint for WebAssembly",
        project_url = "https://github.com/bytecodealliance/wasm-micro-runtime",
        version = "WAMR-2.0.0",
        sha256 = "7663a34b61d6d0ff90778d9be37efde92e2f28ec9baad89f7b18555f0db435ab",
        strip_prefix = "wasm-micro-runtime-{version}",
        urls = ["https://github.com/bytecodealliance/wasm-micro-runtime/archive/{version}.tar.gz"],
        release_date = "2024-04-23",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.wamr"],
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/bytecodealliance/wasm-micro-runtime/blob/{version}/LICENSE",
    ),
    com_github_wavm_wavm = dict(
        project_name = "WAVM",
        project_desc = "WebAssembly Virtual Machine",
        project_url = "https://wavm.github.io",
        version = "3f9a150cac7faf28eab357a2c5b83d2ec740c7d9",
        sha256 = "82e05ade03fdac60cf863972d3e7420a771ef4a18afad26ac442554ab0be1207",
        strip_prefix = "WAVM-{version}",
        urls = ["https://github.com/WAVM/WAVM/archive/{version}.tar.gz"],
        release_date = "2022-05-14",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.wavm"],
        cpe = "cpe:2.3:a:webassembly_virtual_machine_project:webassembly_virtual_machine:*",
    ),
    com_github_wasmtime = dict(
        project_name = "wasmtime",
        project_desc = "A standalone runtime for WebAssembly",
        project_url = "https://github.com/bytecodealliance/wasmtime",
        version = "9.0.3",
        sha256 = "917da461249b11a3176a39573723f78c627259576d0ca10b00d6e7f7fa047081",
        strip_prefix = "wasmtime-{version}",
        urls = ["https://github.com/bytecodealliance/wasmtime/archive/v{version}.tar.gz"],
        release_date = "2023-05-31",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.wasmtime"],
        cpe = "cpe:2.3:a:bytecodealliance:wasmtime:*",
        license = "Apache-2.0",
        license_url = "https://github.com/bytecodealliance/wasmtime/blob/v{version}/LICENSE",
    ),
    com_github_wasm_c_api = dict(
        project_name = "wasm-c-api",
        project_desc = "WebAssembly C and C++ API",
        project_url = "https://github.com/WebAssembly/wasm-c-api",
        # this is the submodule's specific commit used by wasmtime
        # https://github.com/bytecodealliance/wasmtime/tree/v0.25.0/crates/c-api
        version = "c9d31284651b975f05ac27cee0bab1377560b87e",
        sha256 = "c774044f51431429e878bd1b9e2a4e38932f861f9211df72f75e9427eb6b8d32",
        strip_prefix = "wasm-c-api-{version}",
        urls = ["https://github.com/WebAssembly/wasm-c-api/archive/{version}.tar.gz"],
        release_date = "2021-01-11",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.wasmtime"],
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/WebAssembly/wasm-c-api/blob/{version}/LICENSE",
    ),
    io_opencensus_cpp = dict(
        project_name = "OpenCensus C++",
        project_desc = "OpenCensus tracing library",
        project_url = "https://github.com/census-instrumentation/opencensus-cpp",
        version = "f68a2d0ea43eb61a4b7889f09987294c4f94d436",
        sha256 = "b5fd69da558d08480e254c7e2a91e23a88ec8b72d9aec1a6c2329d7560a61744",
        strip_prefix = "opencensus-cpp-{version}",
        urls = ["https://github.com/census-instrumentation/opencensus-cpp/archive/{version}.tar.gz"],
        use_category = ["observability_ext"],
        extensions = ["envoy.tracers.opencensus"],
        release_date = "2022-09-20",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/census-instrumentation/opencensus-cpp/blob/{version}/LICENSE",
    ),
    # This should be removed, see https://github.com/envoyproxy/envoy/issues/11816.
    com_github_curl = dict(
        project_name = "curl",
        project_desc = "Library for transferring data with URLs",
        project_url = "https://curl.haxx.se",
        version = "8.4.0",
        sha256 = "816e41809c043ff285e8c0f06a75a1fa250211bbfb2dc0a037eeef39f1a9e427",
        strip_prefix = "curl-{version}",
        urls = ["https://github.com/curl/curl/releases/download/curl-{underscore_version}/curl-{version}.tar.gz"],
        use_category = ["dataplane_ext", "observability_ext"],
        extensions = [
            "envoy.filters.http.aws_lambda",
            "envoy.filters.http.aws_request_signing",
            "envoy.grpc_credentials.aws_iam",
            "envoy.tracers.opencensus",
        ],
        release_date = "2023-10-11",
        cpe = "cpe:2.3:a:haxx:libcurl:*",
        license = "curl",
        license_url = "https://github.com/curl/curl/blob/curl-{underscore_version}/COPYING",
    ),
    v8 = dict(
        project_name = "V8",
        project_desc = "Google’s open source high-performance JavaScript and WebAssembly engine, written in C++",
        project_url = "https://v8.dev",
        # NOTE: Update together with com_googlesource_chromium_base_trace_event_common.
        # Patch contains workaround for https://github.com/bazelbuild/rules_python/issues/1221
        version = "10.7.193.13",
        # Static snapshot created using https://storage.googleapis.com/envoyproxy-wee8/wee8-fetch-deps.sh.
        sha256 = "2170df76ce5d7ecd7fb8d131370d210152f200273cba126f06d8b88fb53c9fbc",
        urls = ["https://storage.googleapis.com/envoyproxy-wee8/v8-{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.v8"],
        release_date = "2022-10-12",
        cpe = "cpe:2.3:a:google:v8:*",
    ),
    com_googlesource_chromium_base_trace_event_common = dict(
        project_name = "Chromium's trace event headers",
        project_desc = "Chromium's trace event headers",
        project_url = "https://chromium.googlesource.com/chromium/src/base/trace_event/common/",
        # NOTE: Update together with v8.
        # Use version and sha256 from https://storage.googleapis.com/envoyproxy-wee8/v8-<v8_version>-deps.sha256.
        version = "521ac34ebd795939c7e16b37d9d3ddb40e8ed556",
        # Static snapshot created using https://storage.googleapis.com/envoyproxy-wee8/wee8-fetch-deps.sh.
        sha256 = "d99726bd452d1dd6cd50ab33060774e8437d9f0fc6079589f657fe369c66ec09",
        urls = ["https://storage.googleapis.com/envoyproxy-wee8/chromium-base_trace_event_common-{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.v8"],
        release_date = "2022-10-12",
        cpe = "N/A",
    ),
    com_github_google_quiche = dict(
        project_name = "QUICHE",
        project_desc = "QUICHE (QUIC, HTTP/2, Etc) is Google‘s implementation of QUIC and related protocols",
        project_url = "https://github.com/google/quiche",
        version = "ee8e5a9ce8dbedd9fb8b10bea3ce3ca20b4fe014",
        sha256 = "950fd94754ccc522a97fa6e7bff13844e964e5ff9d9cfc87c4435e519003beab",
        urls = ["https://github.com/google/quiche/archive/{version}.tar.gz"],
        strip_prefix = "quiche-{version}",
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2023-07-20",
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/google/quiche/blob/{version}/LICENSE",
    ),
    com_googlesource_googleurl = dict(
        project_name = "Chrome URL parsing library",
        project_desc = "Chrome URL parsing library",
        project_url = "https://quiche.googlesource.com/googleurl",
        # Static snapshot of https://quiche.googlesource.com/googleurl/+archive/dd4080fec0b443296c0ed0036e1e776df8813aa7.tar.gz
        version = "dd4080fec0b443296c0ed0036e1e776df8813aa7",
        sha256 = "fc694942e8a7491dcc1dde1bddf48a31370a1f46fef862bc17acf07c34dc6325",
        urls = ["https://storage.googleapis.com/quiche-envoy-integration/{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        extensions = [],
        release_date = "2022-11-03",
        cpe = "N/A",
        license = "googleurl",
        license_url = "https://quiche.googlesource.com/googleurl/+/{version}/LICENSE",
    ),
    com_google_cel_cpp = dict(
        project_name = "Common Expression Language (CEL) C++ library",
        project_desc = "Common Expression Language (CEL) C++ library",
        project_url = "https://opensource.google/projects/cel",
        version = "da0aba702f44a41ec6d2eb4bbf6a9f01efc2746d",
        sha256 = "d62b93fd07c6151749e83855157f3f2778d62c168318f9c40dfcfe1c336c496f",
        strip_prefix = "cel-cpp-{version}",
        urls = ["https://github.com/google/cel-cpp/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.access_loggers.extension_filters.cel",
            "envoy.access_loggers.wasm",
            "envoy.bootstrap.wasm",
            "envoy.rate_limit_descriptors.expr",
            "envoy.filters.http.rbac",
            "envoy.filters.http.wasm",
            "envoy.filters.network.rbac",
            "envoy.filters.network.wasm",
            "envoy.stat_sinks.wasm",
            "envoy.rbac.matchers.upstream_ip_port",
            "envoy.formatter.cel",
            "envoy.matching.inputs.cel_data_input",
            "envoy.matching.matchers.cel_matcher",
        ],
        release_date = "2023-03-08",
        cpe = "N/A",
    ),
    com_github_google_flatbuffers = dict(
        project_name = "FlatBuffers",
        project_desc = "FlatBuffers is a cross platform serialization library architected for maximum memory efficiency",
        project_url = "https://github.com/google/flatbuffers",
        version = "23.3.3",
        sha256 = "8aff985da30aaab37edf8e5b02fda33ed4cbdd962699a8e2af98fdef306f4e4d",
        strip_prefix = "flatbuffers-{version}",
        urls = ["https://github.com/google/flatbuffers/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.access_loggers.extension_filters.cel",
            "envoy.access_loggers.wasm",
            "envoy.formatter.cel",
            "envoy.bootstrap.wasm",
            "envoy.rate_limit_descriptors.expr",
            "envoy.filters.http.rbac",
            "envoy.filters.http.wasm",
            "envoy.filters.network.rbac",
            "envoy.filters.network.wasm",
            "envoy.stat_sinks.wasm",
            "envoy.rbac.matchers.upstream_ip_port",
            "envoy.matching.inputs.cel_data_input",
            "envoy.matching.matchers.cel_matcher",
        ],
        release_date = "2023-03-03",
        cpe = "cpe:2.3:a:google:flatbuffers:*",
        license = "Apache-2.0",
        license_url = "https://github.com/google/flatbuffers/blob/v{version}/LICENSE.txt",
    ),
    com_googlesource_code_re2 = dict(
        project_name = "RE2",
        project_desc = "RE2, a regular expression library",
        project_url = "https://github.com/google/re2",
        version = "2023-03-01",
        sha256 = "7a9a4824958586980926a300b4717202485c4b4115ac031822e29aa4ef207e48",
        strip_prefix = "re2-{version}",
        urls = ["https://github.com/google/re2/archive/{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2023-03-01",
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/google/re2/blob/{version}/LICENSE",
    ),
    # Included to access FuzzedDataProvider.h. This is compiler agnostic but
    # provided as part of the compiler-rt source distribution. We can't use the
    # Clang variant as we are not a Clang-LLVM only shop today.
    org_llvm_releases_compiler_rt = dict(
        project_name = "compiler-rt",
        project_desc = "LLVM compiler runtime library",
        project_url = "https://compiler-rt.llvm.org",
        # Note: the llvm/clang version should match the version specified in:
        #  - .github/workflows/codeql-daily.yml
        #  - .github/workflows/codeql-push.yml
        #  - https://github.com/envoyproxy/envoy-build-tools/blob/main/build_container/build_container_ubuntu.sh#L84
        version = "14.0.0",
        sha256 = "27ab7fcfb21d108093c0be766a9ed5fe18c04e4f74f936069711a312c8ae0377",
        # Only allow peeking at fuzzer related files for now.
        strip_prefix = "compiler-rt-{version}.src",
        urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/compiler-rt-{version}.src.tar.xz"],
        release_date = "2022-03-23",
        use_category = ["test_only"],
        cpe = "cpe:2.3:a:llvm:compiler-rt:*",
        license = "Apache-2.0",
        license_url = "https://github.com/llvm/llvm-project/blob/llvmorg-{version}/compiler-rt/LICENSE.TXT",
    ),
    upb = dict(
        project_name = "upb",
        project_desc = "A small protobuf implementation in C (gRPC dependency)",
        project_url = "https://github.com/protocolbuffers/upb",
        version = "e074c038c35e781a1876f8eb52b14f822ae2db66",
        sha256 = "8608c15b5612c6154d4ee0c23910afe6c283985e1d368ea71704dcd8684135d4",
        release_date = "2023-07-21",
        strip_prefix = "upb-{version}",
        urls = ["https://github.com/protocolbuffers/upb/archive/{version}.tar.gz"],
        use_category = ["controlplane"],
        cpe = "N/A",
        license = "upb",
        license_url = "https://github.com/protocolbuffers/upb/blob/{version}/LICENSE",
    ),
    kafka_source = dict(
        project_name = "Kafka (source)",
        project_desc = "Open-source distributed event streaming platform",
        project_url = "https://kafka.apache.org",
        version = "3.5.1",
        sha256 = "9715589a02148fb21bc80d79f29763dbd371457bedcbbeab3db4f5c7fdd2d29c",
        strip_prefix = "kafka-{version}/clients/src/main/resources/common/message",
        urls = ["https://github.com/apache/kafka/archive/{version}.zip"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.network.kafka_broker", "envoy.filters.network.kafka_mesh"],
        release_date = "2023-07-14",
        cpe = "cpe:2.3:a:apache:kafka:*",
        license = "Apache-2.0",
        license_url = "https://github.com/apache/kafka/blob/{version}/LICENSE",
    ),
    confluentinc_librdkafka = dict(
        project_name = "Kafka (C/C++ client)",
        project_desc = "C/C++ client for Apache Kafka (open-source distributed event streaming platform)",
        project_url = "https://github.com/confluentinc/librdkafka",
        version = "2.3.0",
        sha256 = "2d49c35c77eeb3d42fa61c43757fcbb6a206daa560247154e60642bcdcc14d12",
        strip_prefix = "librdkafka-{version}",
        urls = ["https://github.com/confluentinc/librdkafka/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.network.kafka_mesh"],
        release_date = "2023-10-25",
        cpe = "N/A",
        license = "librdkafka",
        license_url = "https://github.com/confluentinc/librdkafka/blob/v{version}/LICENSE",
    ),
    kafka_server_binary = dict(
        project_name = "Kafka (server binary)",
        project_desc = "Open-source distributed event streaming platform",
        project_url = "https://kafka.apache.org",
        version = "3.5.1",
        sha256 = "f7b74d544023f2c0ec52a179de59975cb64e34ea03650d829328b407b560e4da",
        strip_prefix = "kafka_2.13-{version}",
        urls = ["https://archive.apache.org/dist/kafka/{version}/kafka_2.13-{version}.tgz"],
        release_date = "2023-07-21",
        use_category = ["test_only"],
    ),
    kafka_python_client = dict(
        project_name = "Kafka (Python client)",
        project_desc = "Open-source distributed event streaming platform",
        project_url = "https://kafka.apache.org",
        version = "2.0.2",
        sha256 = "5dcf87c559e7aee4f18d621a02e247db3e3552ee4589ca611d51eef87b37efed",
        strip_prefix = "kafka-python-{version}",
        urls = ["https://github.com/dpkp/kafka-python/archive/{version}.tar.gz"],
        release_date = "2020-09-30",
        use_category = ["test_only"],
        license = "Apache-2.0",
        license_url = "https://github.com/dpkp/kafka-python/blob/{version}/LICENSE",
    ),
    proxy_wasm_cpp_sdk = dict(
        project_name = "WebAssembly for Proxies (C++ SDK)",
        project_desc = "WebAssembly for Proxies (C++ SDK)",
        project_url = "https://github.com/higress-group/proxy-wasm-cpp-sdk",
        version = "47bb9cd141a151415ad6a597ed60c78bea2ce0b7",
        sha256 = "cab5efa54c0cec8eb17c0a2f6ce72b9cd84ebba2b332e919187f963a5d7cfaa1",
        strip_prefix = "proxy-wasm-cpp-sdk-{version}",
        urls = ["https://github.com/higress-group/proxy-wasm-cpp-sdk/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.access_loggers.wasm",
            "envoy.bootstrap.wasm",
            "envoy.filters.http.wasm",
            "envoy.filters.network.wasm",
            "envoy.stat_sinks.wasm",
            "envoy.wasm.runtime.null",
            "envoy.wasm.runtime.v8",
            "envoy.wasm.runtime.wamr",
            "envoy.wasm.runtime.wavm",
            "envoy.wasm.runtime.wasmtime",
        ],
        release_date = "2021-06-24",
        cpe = "N/A",
    ),
    proxy_wasm_cpp_host = dict(
        project_name = "WebAssembly for Proxies (C++ host implementation)",
        project_desc = "WebAssembly for Proxies (C++ host implementation)",
        project_url = "https://github.com/higress-group/proxy-wasm-cpp-host",
        version = "04ef279d83a39d507d882bb35e3199abcecfe5af",
        sha256 = "2573ecab4f3c12c10a61f2e34a69a3c4d6f20525c9ae07bcaac72b0a9921df78",
        strip_prefix = "proxy-wasm-cpp-host-{version}",
        urls = ["https://github.com/higress-group/proxy-wasm-cpp-host/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.access_loggers.wasm",
            "envoy.bootstrap.wasm",
            "envoy.filters.http.wasm",
            "envoy.filters.network.wasm",
            "envoy.stat_sinks.wasm",
            "envoy.wasm.runtime.null",
            "envoy.wasm.runtime.v8",
            "envoy.wasm.runtime.wamr",
            "envoy.wasm.runtime.wavm",
            "envoy.wasm.runtime.wasmtime",
        ],
        release_date = "2024-05-18",
        cpe = "N/A",
    ),
    proxy_wasm_rust_sdk = dict(
        project_name = "WebAssembly for Proxies (Rust SDK)",
        project_desc = "WebAssembly for Proxies (Rust SDK)",
        project_url = "https://github.com/proxy-wasm/proxy-wasm-rust-sdk",
        version = "0.2.1",
        sha256 = "23f3f2d8c4c8069a2e72693b350d7442b7722d334f73169eea78804ff70cde20",
        strip_prefix = "proxy-wasm-rust-sdk-{version}",
        urls = ["https://github.com/proxy-wasm/proxy-wasm-rust-sdk/archive/v{version}.tar.gz"],
        use_category = ["test_only"],
        release_date = "2022-11-22",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/proxy-wasm/proxy-wasm-rust-sdk/blob/v{version}/LICENSE",
    ),
    emsdk = dict(
        project_name = "Emscripten SDK",
        project_desc = "Emscripten SDK (use by Wasm)",
        project_url = "https://github.com/emscripten-core/emsdk",
        # v3.1.7 with Bazel fixes
        version = "0ea8f8a8707070e9a7c83fbb4a3065683bcf1799",
        sha256 = "1ca0ff918d476c55707bb99bc0452be28ac5fb8f22a9260a8aae8a38d1bc0e27",
        strip_prefix = "emsdk-{version}/bazel",
        urls = ["https://github.com/emscripten-core/emsdk/archive/{version}.tar.gz"],
        use_category = ["test_only"],
        release_date = "2022-03-09",
        license = "Emscripten SDK",
        license_url = "https://github.com/emscripten-core/emsdk/blob/{version}/LICENSE",
    ),
    rules_rust = dict(
        project_name = "Bazel rust rules",
        project_desc = "Bazel rust rules (used by Wasm)",
        project_url = "https://github.com/bazelbuild/rules_rust",
        version = "0.27.0",
        strip_prefix = "rules_rust-{version}",
        sha256 = "d9a3981f4ef18ced850341bc05c7e2a506006a47a0207b6f7191f271cb893233",
        urls = ["https://github.com/bazelbuild/rules_rust/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.wasmtime"],
        release_date = "2023-08-31",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_rust/blob/{version}/LICENSE.txt",
    ),
    com_github_fdio_vpp_vcl = dict(
        project_name = "VPP Comms Library",
        project_desc = "FD.io Vector Packet Processor (VPP) Comms Library",
        project_url = "https://fd.io/",
        version = "fe6d8a37062a28f28ee63c3e9177d18c10ed96e1",
        sha256 = "2ae11c852f8c1967463251dcf9de983f9e4821abaeea6989fd2c1fb3020814b7",
        strip_prefix = "vpp-{version}",
        urls = ["https://github.com/FDio/vpp/archive/{version}.tar.gz"],
        use_category = ["other"],
        extensions = ["envoy.bootstrap.vcl"],
        release_date = "2022-03-02",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/FDio/vpp/blob/{version}/LICENSE",
    ),
    intel_dlb = dict(
        project_name = "Intel Dlb",
        project_desc = "Dlb",
        project_url = "https://networkbuilders.intel.com/solutionslibrary/queue-management-and-load-balancing-on-intel-architecture",
        version = "8.0.0",
        sha256 = "075533229bb2bd2f945ec8089a707205f3f8e8d87a8030e9208603d997236171",
        urls = ["https://downloadmirror.intel.com/763709/dlb_linux_src_release8.0.0.txz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.network.connection_balance.dlb"],
        release_date = "2022-12-15",
        cpe = "N/A",
    ),
    rules_license = dict(
        project_name = "rules_license",
        project_desc = "Bazel rules for checking open source licenses",
        project_url = "https://github.com/bazelbuild/rules_license",
        version = "0.0.7",
        sha256 = "4531deccb913639c30e5c7512a054d5d875698daeb75d8cf90f284375fe7c360",
        urls = ["https://github.com/bazelbuild/rules_license/releases/download/{version}/rules_license-{version}.tar.gz"],
        use_category = ["build", "dataplane_core", "controlplane"],
        release_date = "2023-06-16",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_license/blob/{version}/LICENSE",
    ),
    utf8_range = dict(
        project_name = "utf8_range",
        project_desc = "Fast UTF-8 validation with Range algorithm (NEON+SSE4+AVX2)",
        project_url = "https://github.com/protocolbuffers/utf8_range",
        version = "d863bc33e15cba6d873c878dcca9e6fe52b2f8cb",
        sha256 = "c56f0a8c562050e6523a3095cf5610d19c190cd99bac622cc3e5754be51aaa7b",
        strip_prefix = "utf8_range-{version}",
        urls = ["https://github.com/protocolbuffers/utf8_range/archive/{version}.tar.gz"],
        use_category = ["build", "dataplane_core", "controlplane"],
        release_date = "2023-05-26",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/protocolbuffers/utf8_range/blob/{version}/LICENSE",
    ),
)

def _compiled_protoc_deps(locations, versions):
    for platform, sha in versions.items():
        locations["com_google_protobuf_protoc_%s" % platform] = dict(
            project_name = "Protocol Buffers (protoc) %s" % platform,
            project_desc = "Protoc compiler for protobuf (%s)" % platform,
            project_url = "https://developers.google.com/protocol-buffers",
            version = PROTOBUF_VERSION,
            sha256 = sha,
            urls = ["https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protoc-{version}-%s.zip" % platform.replace("_", "-", 1)],
            use_category = ["dataplane_core", "controlplane"],
            release_date = "2023-05-17",
            cpe = "N/A",
            license = "Protocol Buffers",
            license_url = "https://github.com/protocolbuffers/protobuf/blob/v{version}/LICENSE",
        )

_compiled_protoc_deps(REPOSITORY_LOCATIONS_SPEC, PROTOC_VERSIONS)
